package com.sls.game.service;

import com.sls.core.socket.Head;
import com.sls.core.socket.ServerDisponseException;
import com.sls.game.pojo.GoodsOrderInfo;
import com.sls.game.pojo.SLSHttpInterfaceInfo;

/**
 * 
 * @description 供货失败后处理服务
 * @author JLM
 * @date 2013-06-20
 * 
 */
public interface EKHAfterSupplyService {
	/**
	 *  供货失败后，主方法。包含：切换主备供货渠道切换，失败后处理。
	 * 
	 * @return
	 * @throws ServerDisponseException
	 */
	public SLSHttpInterfaceInfo afterTraderFault(GoodsOrderInfo orderInfo, Head head,
			SLSHttpInterfaceInfo requestInfo);

	/**
	 * @description 切换主备供货渠道切换，重新发起供货
	 * 
	 * @return
	 * @throws ServerDisponseException
	 */
	public String traderChangeSupply(GoodsOrderInfo orderInfo, Head head,
			SLSHttpInterfaceInfo requestInfo);

	/**
	 * @description 失败后处理：支付退款，及订单更新。
	 * 
	 * @param orderId订单信息
	 * @param head
	 *            请求消息头
	 * @param info
	 *            請求信息
	 * @param merchantIP
	 *            下游IP
	 * @param paymentOrderNo
	 *            支付流水
	 * @return
	 * @throws ServerDisponseException
	 */
	public SLSHttpInterfaceInfo traderFault(GoodsOrderInfo orderInfo, Head head,
			SLSHttpInterfaceInfo requestInfo);

	/**
	 * 
	 * */
	public String afterTraderSuccess(GoodsOrderInfo orderInfo, Head head,
			SLSHttpInterfaceInfo requestInfo);

	/**
	 * 
	 * */
	public String afterTraderException(GoodsOrderInfo orderInfo, Head head,
			SLSHttpInterfaceInfo requestInfo);
}
